Existing reading evaluation systems rely on pre-built test data, which are created for people with cognitive impairments that affect reading. However, the diagnosis of these cognitive impairments is assumed. Moreover, existing reading evaluation systems lack personalization and the ability to adapt to a particular person's needs. What is needed is an accurate method to estimate a person's reading skill level while accounting for any possible cognitive impairment without underlying assumptions, and providing personalized recommendations to that person.